The invention is directed generally to data communications between a processor unit and a number of peripheral devices of a data processing system. More particularly, the invention relates to a modifiable input/output priority selection apparatus that permits the processor unit to serve a plurality of peripheral devices desiring to communicate with the processor unit by determining the order of communication.
Many of today's data processing systems include a central processing unit that is coupled to a variety of peripheral devices that store data, receive data from remote sources, or (in the case of terminal and keyboard units, for example) provide a communication interface between a user and the processing system itself. Often, the peripheral devices communicate over a single bus system of one sort or another, so that in order to avoid data communication collisions, when two or more of the peripheral devices require interaction with the processor unit, the ordering of such interaction or communication with the separate devices must be established.
This ordering, however, must also take into account the speed with which different types of peripheral devices can communicate data, and the permanency of the data to be communicated (i.e., how long will the data be available before lost if not transmitted). For example, control devices for communications equipment sometimes will have data buffers that are very small (two bytes). When a communications control device wants to transfer data to the processor unit, it must do so almost immediately. Accordingly, the ordering determination is often done according to various priorities assigned to the peripheral devices. These priority assignments specify which peripheral device receives attention first if more than one requires the processor unit at a given time.
In one form of prioritization heretofore used, peripheral device priorities are based upon the position of the peripheral device along a daisy-chained input/output (I/O) bus. Changing the assigned priority of a peripheral device, therefore, requires physical relocation of the peripheral device along the I/O bus.
Yet another prioritization technique relies upon switch settings in the peripheral device which set the priority of that device, relative to other devices coupled to the same I/O bus. Again, although no physical relocation of the peripheral device is necessary to modify its priority in the hierarchy of prioritization, a physical act must still be taken to reset the switches if the assigned priority of a peripheral device is to be changed.
Thus, while various prioritizing techniques are known, none provides any real flexibility in changing assigned priorities without some form of system reconfiguration by physical means.